package org.kk.linked;


import org.kk.Common;

/**
 *  输入一个链表，输出该链表的倒数第K个结点
 * @author kk
 * @Date 2021/1/23
 */
public class FindKthToTail {
    /**
     * 解法一：一快一慢两个指针，快指针先走k步，然后两个指针同时走
     * 示例
     * 给定一个链表: 1->2->3->4->5, 和 k = 2.
     * 返回链表 4->5.
     */
    public static Common.ListNode findKthToTail(Common.ListNode head, int k) {
        if(head == null || k < 1) return head;
        Common.ListNode slow = head, fast = head;
        for (int i = 0; i < k; i++){
            fast = fast.next;
        }
        while(fast != null){
            slow = slow.next;
            fast = fast.next;
        }
        return slow;
    }
}
